@extends('layouts.header')
@section('style')
    tbody tr:hover {
    cursor: pointer;
    /* background-color: #dee; */
    }
@endsection
@section('content')
    <nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 检测业务 <span
            class="c-gray en">&gt;</span> <a href="javascript:;" onclick="location.href='/{{config('constant.name_admin')}}/contract/indexAssignTask';">任务分配</a><span
            class="c-gray en">&gt;</span> 点击进入【{{ $contractInfo->client_name }}】
        <a class="btn btn-primary radius r" style="line-height:1.6em;margin-top:3px"
           href="javascript:location.replace(location.href);"
           title="刷新"><i class="Hui-iconfont">&#xe68f;</i></a>
        <a class="btn btn-primary radius r mr-10" style="line-height:1.6em;margin-top:3px"
           href="javascript:self.location=document.referrer;">
            <i class="Hui-iconfont Hui-iconfont-arrow1-left"></i>&nbsp;&nbsp;返回
        </a>
    </nav>
    <div class="page-container">
        <div class="panel panel-default">
            <div class="panel-header">主检人</div>
            <div class="panel-body">
                @foreach ($data_tester as $val)
                    <label for="zjr-{{ $val->id }}"><input class="ml-5" type="radio" name="zjr" id="zjr-{{ $val->id }}" value="{{ $val->id }}" @if($val->realname == auth()->user()->realname) checked @endif> {{ $val->realname }}</label>
                @endforeach
            </div>
        </div>
        <div class="panel panel-default">
            <div class="panel-header">副检人（默认：个人信息绑定）</div>
            <div class="panel-body">
                <!-- 注意：副检人中不能没有当前账号人，如果选别的人做主检，当前账号可能是副检人 -->
                <label for="fjr"><input type="checkbox" name="fjr" id="fjr" value="" checked> {{auth()->user()->partner}}</label>
                @foreach ($data_tester as $val)
                    @if($val->realname != auth()->user()->partner)
                        <label for="fjr-{{ $val->id }}"><input class="ml-5" type="checkbox" name="fjr" id="fjr-{{ $val->id }}" value="{{ $val->realname }}"> {{ $val->realname }}</label>
                    @endif
                @endforeach
            </div>
        </div>

        <div class="panel panel-default mt-10">
            <div class="panel-header">
                检测项目
                <a class="btn btn-primary size-MINI radius disabled ml-20" style="width: 47px" id="item_checkAll"
                   href="javascript:;" onclick="item_checkAll()"> 全选 </a>
            </div>
            <div class="panel-body">
                <div class="skin-minimal">
                    <div id="test_items" class="skin-minimal">
                    </div>
                </div>
            </div>
        </div>
        <div class="cl pd-5 bg-1 bk-gray mt-10">
            <span class="l">
                <a id="btn_assign" class="btn btn-primary radius disabled" data-id="0" href="javascript:;"
                   onclick="one_assign(this)">点击分配</a>
            </span>
            <span class="l ml-15">
                <a class="btn btn-primary radius" href="javascript:;" onclick="batch_assign()">批量分配</a>
            </span>
            <span class="l ml-15">
                <a class="btn btn-primary radius" href="javascript:;" onclick="autoAssign()">一键自动分配</a>
            </span>
        </div>
        <div class="mt-10">
            <table class="table table-border table-bordered table-hover table-bg table-responsive" id="datatable">
                <thead>
                <tr class="text-c">
                    <th><input type="checkbox" id="checkAll"></th>
                    <th>条形码</th>
                    <th>样品名称</th>
                    <th>分类</th>
                    <th>额定电压</th>
                    <th>执行标准</th>
                    <th width='20%' class="text-c">试验项目</th>
                    <th>数量</th>
                    <th>主检人</th>
                    <th>分配结果</th>
                </tr>
                </thead>
            </table>
        </div>
    </div>

    <script type="text/javascript">
        var table;
        $(function () {

            $.fn.dataTable.ext.errMode = 'throw';//datatable抛异常的方式，在console中输出，默认以alert的方式弹出
            table = $('#datatable').DataTable({
                order: [[6, 'desc']],//默认第几个排序
                ordering: false, // 是否排序
                // "pageLength": 2,
                // "stateSave": true,// 状态保存 - 再次加载页面时还原表格状态
                // "stateDuration": -1,//仅保留当前会话的数据
                // "paging":false, //禁用分页
                // serverSide: true,//服务器端处理模式——此模式下如：过滤、分页、排序的处理都放在服务器端进行。
                // responsive: true,//响应式，需要插件
                // fixedHeader: true,//表头固定，需要插件
                // autoWidth: false,
                "deferRender": true,//延迟渲染速度
                ajax: "/{{config('constant.name_admin')}}/contractGaiyao/indexAssignTask?id={{ $_GET['id'] }}",//客户端分页时，必须写url
                processing: true,//加载数据时候是否显示进度条
                language: {url: '/admin/lib/datatables/dataTables_Chinese_Lang.json'},
                /* createdRow : function( row, data, dataIndex ) {
                    //当tr元素被创建（所有的td元素已经插入进去），或者给tr绑定事件，该回调函数被执行
                    $(row).addClass( 'text-c' );
                },
                initComplete : function (settings, json) {
                    //当表格完成加载绘制完成后执行此方法
                    // $(row).addClass( 'text-c' );
                    // alert(111);
                }, */
                columns: [
                    {
                        data: null, class: "text-c", render: function (data, type, row, meta) {
                            return '<input type="checkbox" value="'+row.id+'" />';
                        }, searchable: false, orderable: false
                    },
                    {data: "bar_codes", class: "text-c", searchable: false, orderable: false},//条形码 1
                    {
                        data: "tool_name",
                        class: "text-c tool_name",
                        orderable: false,
                        render: function (data, type, row, meta) {
                            return '<span data-id="' + row.id + '">' + row.tool_name + '</span>';
                        }
                    },//样品名称 2
                    {data: "class", class: "text-c"},//分类 3
                    {data: "voltage", class: "text-c", orderable: false},//电压等级 4
                    {data: "std_num", class: "text-c"},//执行标准 5
                    {data: "item_names", class: "text-l"},//试验项目 6
                    {
                        data: "count", class: "text-c", render: function (data, type, row, meta) {
                            return row.count + ' ' + row.unit;
                        }
                    },//数量 7
                    {data: "managers", class: "text-c managers"},//主检人
                    {
                        data: "id", class: "text-c", orderable: false, render: function (data, type, row, meta) {
                            return '<a class="ml-5 btn btn-primary radius size-MINI" href="javascript:;" onclick="view(' + row.id + ')">查看</a>';
                        }
                    },//操作 - 分配结果
                ],
            });

            /*  draw  在表格完成绘制后触发*/
            table.on('draw', function () {
                var info = table.page.info();
                //如果最后一页仅剩一条记录，而且不是在第一页
                if ((info.start == info.end) && info.end > 1) {
                    //跳转到上一页
                    $('#datatable_previous').click();
                }

                $('#btn_assign').attr('data-id', '0');
                $('#btn_assign').addClass('disabled');
                $('#item_checkAll').addClass("disabled");
                $('#test_items').html('');
                $("tbody tr").css("background-color", "#fff");

                $("tbody tr").click(function () {
                    $("tbody tr").css("background-color", "#fff");
                    $(this).css("background-color", "#dee");
                    var id = $(this).find("td.tool_name span").attr('data-id');
                    $('#btn_assign').attr('data-id', id);
                    $('#btn_assign').removeClass('disabled');
                    $('#test_items').html('');
                    //发送ajax 请求，获取当前行的检测项目
                    $.get('/{{config('constant.name_admin')}}/myapi/getItemByContractGaiyaoId', {id: id}, function (data) {
                        $('#item_checkAll').text('全选');
                        $('#item_checkAll').removeClass("disabled");

                        //jQuery的循环操作
                        var str = '';
                        $.each(data, function (index, el) {
                            str += "<label class='ml-10'><input type='checkbox' name='items[]' value='" + el.id + "'>" + el.name + "</label>";
                        });
                        //将数据放到对应的option之后
                        $('#test_items').html(str);
                    }, 'json');
                });
            });
        });

        /*表格重新加载*/
        function table_reload(bool) {
            if (bool) {
                //true时，跳到第一页
                table.ajax.reload();
            } else {
                //false时，停留在原来页
                table.ajax.reload(null, false);
            }
        }

        /*单个任务分配*/
        function one_assign(obj) {
            var tester_id = $('input[name=zjr]:checked').val(),
                fj_testers = [];
            if (typeof (tester_id) == "undefined") {
                layer.msg('请选中一个主检人', {time: 2000});
                return;
            }
            $('input[name=fjr]:checked').each(function(i){
                fj_testers.push($(this).val());
            });

            var doms = $("#test_items input:checked");
            var l = doms.length;
            if (l == 0) {
                layer.msg('未勾选检验项目', {time: 2000});
                return;
            }
            var checkID = [];//定义一个空数组
            doms.each(function (i) {//把所有被选中的复选框的值存入数组
                checkID[i] = $(this).val();
            });

            var index2;

            $.ajax({
                type: 'post',
                url: '/{{config('constant.name_admin')}}/contractGaiyao/oneAssign',
                data: {
                    checkID: checkID,//勾选的检测项目id
                    id: $(obj).attr('data-id'),
                    batch_id:{{ $batch_id }},
                    tester_id: tester_id,
                    fj_testers: fj_testers,
                    _token: '{{ csrf_token() }}',
                },
                // dataType: 'json',
                success: function (data) {
                    // console.log(data);
                    if (data === '1') {
                        table_reload(0);//0停留在当前页，1回到第一页
                        layer.msg('分配成功!', {icon: 1, time: 2000});
                    } else {
                        layer.msg('分配失败！'+data, {icon: 2, time: 2000});
                    }
                },
                error: function (data) {
                    ajax_error(data);
                },
                beforeSend: function () {
                    //0.4透明度 白色遮罩
                    index2 = layer.load(2, {shade: [0.05, '#000']});
                },
                complete: function () {
                    layer.close(index2);
                },
            });
        }

        /*批量任务分配*/
        function batch_assign() {
            var tester_id = $('input:radio:checked').val(),
                fj_testers = [];
            if (typeof (tester_id) == "undefined") {
                layer.msg('请选中一个主检人', {time: 2000});
                return;
            }
            $('input[name=fjr]:checked').each(function(i){
                fj_testers.push($(this).val());
            });

            var doms = $("tbody tr > td:first-child input:checkbox:checked");
            var l = doms.length;
            if (l == 0) {
                layer.msg('请勾选任务', {time: 2000});
                return;
            }

            var checkID = [],managers = '';//定义一个空数组
            doms.each(function (i) {//把所有被选中的复选框的值存入数组
                checkID[i] = $(this).val();
                managers += $(this).parents('td').siblings('.managers').text();
            });
            if($.trim(managers) !== ''){
                layer.confirm('所选样品有已经分配过的，是否重新分配？', function(index) {
                    assign();
                });
            }else{
                assign();
            }
            function assign() {
                var index2;
                $.ajax({
                    type: 'post',
                    url: '/{{config('constant.name_admin')}}/contractGaiyao/batchAssign',
                    data: {
                        checkID: checkID,
                        batch_id:{{ $batch_id }},
                        tester_id: tester_id,
                        fj_testers: fj_testers,
                        _token: '{{ csrf_token() }}',
                    },
                    // dataType: 'json',
                    success: function (data) {
                        // console.log(data);
                        if (data === '1') {
                            table_reload(0);//0停留在当前页，1回到第一页
                            layer.msg('分配成功!', {icon: 1, time: 2000});
                        } else {
                            layer.msg('分配失败!', {icon: 2, time: 2000});
                        }
                    },
                    error: function (data) {
                        ajax_error(data);
                    },
                    beforeSend: function () {
                        //0.4透明度 白色遮罩
                        index2 = layer.load(2, {shade: [0.05, '#000']});
                    },
                    complete: function () {
                        layer.close(index2);
                    },
                });
            }
        }

        /*查看 分配结果*/
        function view(id, w, h) {

            layer_show('分配结果', '/{{config('constant.name_admin')}}/myapi/viewAssignRes?id=' + id, w, h);
        }

        /* 一键自动分配任务 */
        function autoAssign() {
            var index2;

            layer.confirm('确认要 一键自动分配任务 吗？', {title: '信息', icon: 3}, function (index) {
                $.ajax({
                    type: 'GET',
                    url: '/{{config('constant.name_admin')}}/contractGaiyao/autoAssign' + '?contract_id=' + {{ $batch_id }},
                    // dataType: 'json',
                    success: function (data) {
                        // console.log(data);
                        if (data === '成功') {
                            table_reload(0);//0停留在当前页，1回到第一页
                            layer.msg('一键自动分配任务成功!', {icon: 1, time: 2000});
                        } else {
                            // layer.msg(data,{icon:2,time:2000});
                            table_reload(0);//0停留在当前页，1回到第一页
                            layer.open({
                                content: data,
                                title: false,
                                type: 0,
                                icon: 5,
                                // skin: 'layui-layer-molv',
                                btn: '',
                                closeBtn: 2, //右上角关闭按钮风格  0无,1默认,2
                                shadeClose: true, //开启遮罩关闭
                                time: 0,
                                anim: 6,//弹出动画
                            });
                        }
                    },
                    error: function (data) {
                        ajax_error(data);
                    },
                    beforeSend: function () {
                        //0.4透明度 白色遮罩
                        index2 = layer.load(2, {shade: [0.05, '#000']});
                    },
                    complete: function () {
                        //layer.close(index2);
                    },
                });
            });
        }

        /*iCheck 全选*/
        function item_checkAll() {
            // var checkAll = $("table thead th input:checkbox");
            var checkboxes = $("#test_items input:checkbox");
            if ($('#item_checkAll').text() === '全不选') {
                checkboxes.iCheck('uncheck');
                $('#item_checkAll').text('全选');
            } else {
                checkboxes.iCheck('check');
                $('#item_checkAll').text('全不选');
            }
        }

    </script>
@endsection
